//
//  TKXmppMessage.h
//  XmppTest
//
//  Created by liupm on 15/10/12.
//  Copyright © 2015年 liupm. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>


//消息内容类型
typedef NS_ENUM(NSInteger,TKIMMsgType)
{
    TKIMMsgTypeTxt,//文本
    TKIMMsgTypeImage,//图片
    TKIMMsgTypeVideo, //视频
    TKIMMsgTypeAudio, //语音
    TKIMMsgTypeLocation,//位置
    TKIMMsgTypeFile, //文件
    TKIMMsgTypeRichTxt,//富文本
    TKIMMsgTypeTemplTxt, //模板消息
    TKIMMsgTypeDTW,//模板消息单图文
    TKIMMsgTypeVideoChat,//视频聊天
    TKIMMsgTypeVoiceChat,//语音聊天
    TKIMMsgTypeScore, //评分消息
    TKIMMsgTypeTip,//基本提示消息
    TKIMMsgTypeCmd,//指令消息
    TKIMMsgTypeListTxt//列表消息
};


//消息状态
typedef NS_ENUM(NSInteger,TKIMMsgSendState)
{
    TKIMMsgSendStateRead, //已读
    TKIMMsgSendStateUnRead, //未读
    TKIMMsgSendStateSending,//发送中
    TKIMMsgSendStateSendFail//发送失败
};


//用户在线状态
typedef NS_ENUM(NSInteger,TKIMOnlineState)
{
    TKIMOnlineStateAvailable,//在线
    TKIMOnlineStateAway,//离开
    TKIMOnlineStateDoNotDisturb,//忙碌
    TKIMOnlineStateUnavailable//下线
};


@interface TKIMMessage : NSObject<NSCopying,NSMutableCopying>
@property(nonatomic,copy) NSString *messageId;//消息ID
@property(nonatomic,copy) NSString *time;//消息时间
@property(nonatomic,copy) NSString *text;//文本内容
@property(nonatomic,assign) TKIMMsgType type;//消息内容类型（文本，图片，视频）
@property(nonatomic,assign) NSInteger chatUserType;//聊天类型
@property(nonatomic,copy) NSString *senderName;//消息发送方的用户名
@property(nonatomic,copy) NSString *fromUser;//发送消息用户id
@property(nonatomic,copy) NSString *fromJid;//发送消息用户jid
@property(nonatomic,copy) NSString *toUser;//目标用户id
@property(nonatomic,copy) NSString *toJid;//目标用户jid
@property(nonatomic,assign) BOOL isSender;//是否是发送者
@property(nonatomic,strong) NSString *photoUrl;//头像地址
@property(nonatomic,assign) TKIMMsgSendState state;//消息状态
@property(nonatomic,copy) NSString *secret;//密钥
@property(nonatomic, strong) NSMutableDictionary *ext;//消息扩展
@property(nonatomic,assign) BOOL isOrder;//是否是指令消息（用于公从号，系统 消息之类）
@property(nonatomic,copy) NSString *refId;//消息关联ID
@property(nonatomic,copy) NSString *targetId;//会话ID
@property(nonatomic,copy) NSString *targetName;//会话名
@property(nonatomic,copy) NSString *targetPotoUrl;//会话头像
@property(nonatomic,assign) BOOL isUpdateSenderInfo;//是否更新消息发送者的信息(默认YES)
@property(nonatomic,assign) NSInteger channel;//消息的渠道
@property(nonatomic,assign) long timeInterval;
@property(nonatomic,copy) NSString *folder;//消息文件夹
@property(nonatomic,copy) NSString *fromTransferId;//from中间号
@property(nonatomic,assign) BOOL isPoint;//是否提示
@property(nonatomic,assign) BOOL inDB;//是否入库
@property(nonatomic,assign) BOOL isDelete;//是否被删除了
@end
